package com.gxa.dr2.service;


import com.gxa.dr2.dto.LayDTO;
import com.gxa.dr2.dto.ResultDTO;
import com.gxa.dr2.param.MyParam;
import com.gxa.dr2.pojo.Empl;

import javax.servlet.http.HttpSession;

/**
 * @author 一路向北
 */
public interface EmplService {


    /**
     * 员工的列表数据
     * @return
     */
    LayDTO list(MyParam param);


    /**
     * 添加员工
     * @param empl ： 员工对象
     * @param roleIds： 角色的ID数组
     * @return
     */
    ResultDTO add(Empl empl, Integer[] roleIds);


    /**
     * 修改状态
     * @param empl
     * @return
     */
    ResultDTO changeStatus(Empl empl);

    /**
     * 修改电话
     * @param empl
     * @return
     */
    ResultDTO changePhone(Empl empl, Long phone, HttpSession session);

    /**
     * 修改登录ID
     * @param empl
     * @return
     */
    ResultDTO changeEmplCode(Empl empl, String emplCode, HttpSession session);

    /**
     * 修改密码
     * @param session
     * @param pwd
     * @param newPWD
     * @param newPWD2
     * @return
     */
    public ResultDTO changePWD(HttpSession session, String pwd, String newPWD, String newPWD2);

    /**
     * 通过 EmplCode 查询员工
     * @param emplCode
     * @return
     */
    boolean isExistEmlCode(String emplCode);


    /**
     * 获取员工的详情
     * @param emplId
     * @return
     */
    ResultDTO detail(Integer emplId);

    /**
     * 员工的编辑
     * @param empl : 员工对象
     * @param roleIds ： 角色ID数组
     * @return
     */
    ResultDTO edit(Empl empl, Integer[] roleIds);


    /**
     * 逻辑删除
     * @param emplId ： 员工的ID
     * @return
     */
    ResultDTO deleteFalse(Integer emplId);


    /**
     * 批量逻辑删除
     * @param ids ： 员工的id数组
     * @return
     */
    ResultDTO deleteAll(Integer[] ids);

    /**
     * 根据名字获得id
     */
    Integer findIdByName(String emplName);
}
